package ar.com.sne.util;

                                                                         
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class Common implements Serializable {
	
	static final long serialVersionUID = 0;
	
	public final static long HASACCESS_NOMBRESNULOS_ERROR = -1;
	public final static long HASACCESS_SINACCESO = 0;
	public final static long HASACCESS_OK = 1;
	public final static long HASACCESS_OK_NOEXISTE = 2;

    public static final long ERROR_TYPE_RECOVERABLE = 0;
    public static final long ERROR_TYPE_NON_RECOVERABLE = 1;
    
    private Long id;
    private long errorType = ERROR_TYPE_RECOVERABLE;
    
	public Common()  {
        super();
    }

	/**
	 * @return Devuelve el atributo id.
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id Fija el atributo id.
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/* Obtiene el tipo de error que se correponde con los errores cargados 
	 * los estados pueden ser: Common.ERROR_TYPE_RECOVERABLE = 0, Common.ERROR_TYPE_NON_RECOVERABLE = 1 
	*/
	public long getErrorType() {
		return this.errorType;
	}

	/** Por favor, use este metodo solo si sabe lo que esta haciendo. 
	 * <p>Es recomendable que utilice los metodos addRecoverableError(),  
	 * addNonRecoverableError() y clearError() que manejan el estado correctamente.
	*/
	public void setErrorType(long errorType) {
		this.errorType = errorType;
	}

	

	protected static String getStringByDate(Date fecha) {
		if (fecha==null)
			return "";
		try {
			return new SimpleDateFormat("dd/MM/yyyy").format(fecha);
		} catch (Exception e) {
			return "fecha invalida";
		}
	}

	/**
	 * Metodo que puede ser implementado o no segun, la clase posea caso.
	 * Es utilizado en el servicio de registro de uso de expedientes.
	 * 
	 * @author Cristian
	 * @return
	 */
	public String getRepresent() {
		return "";
	}
}
